Cloud CCloud Computer تک تراشه ای اینتل


 






 

حرکت به سمت پردازنده های چندین هسته ای( Many-Core)
حرکت تولید کنندگان ریزپردازنده ها از تراشه های تک هسته ای به پردازنده های 2و 4 هسته ای تا اینجا یک گام استوار بوده است. اینتل و AMD پردازنده های 6و 8 هسته ای خود را در ادامه سال 2010 روانه بازار خواهند کرد که ادامه دهنده همین پیشرفت پایدار به حساب می آید. اگر محققین اینتل به موفقیتهای اخیر خود در رابطه با یک پردازنده « چندین هسته ای» ادامه دهند، پیشرفت پایدار و مداوم مذکور در آینده نزدیک می تواند یک گام عظیم دیگر را به سمت جلو بردارد. متحده بعنوانمحققین اینتل در آلمان، هند و ایالات متحده بعنوان بخشی از برنامه « Tera-scale Cloud Computer Research» اخیراً در تلاشی مشترک، یک پردازنده 48 هسته ای را با موفقیت به نمایش گذاشتند که محققین اینتل آن را با نام Single-chip Cloud Computer ( SCC) می شناسند و می تواند بر نحوه ساخت پردازنده های آتی تأثیر جدی بگذارد.
اینتل این تراشه تجربی را یک تراشه « چندین هسته ای» (Many-Core) می نامد، نه یک تراشه چند هسته ای Sean Kohel. (Multi-Core) یکی از مروجین فناوریهای Intel Labs در این رابطه می گوید:« احتمالاً شما سرانجام می توانید یک قفسه از سرورها را با یک تراشه واحد جایگزین نمائید. ما بسیار مشتاق هستیم که ببینیم وقتی به این سطح از یکپارچه سازی می رسیم، چه اتفاقی خواهد افتاد».ل سال 2009

 

تحقیقات ابتدائی در سال 2006 بر روی چیزی متمرکز بود که اینتل آن را یک « پردازنده تحقیقاتی ترافلاپس» می نامید. اهداف اصلی که اینتل در سال 2006 برای پروژه خود تعریف کرده بود، عبارتند از:
- ترکیب چندین هسته ممیزی شناور ساده با یکدیگر
- تائید اعتبار مفهوم طراحی« Tiled»( موزائیکی)
- آزمایش محدودیتهای سخت افزاری یک شبکه Mesh
- عرضه قابلیتهای « Sleep» در سطوح هسته و مدار
- عرضه ویژگی عبور دهی پیام « سبک وزن»
- پیاده سازی قابلیت برنامه ریزی محدود برای انجام آزمایشهای مقایسه ای ابتدائی
- کسب تجربه، اساساً بر روی مدار هنگامیکه (SCC) Si- پیاده سازی قابلیت برنامه ریزی محدود برای انجام آزمایشهای مقایسه ای ابتدائی

- کسب تجربه، اساساً بر روی مدار هنگامیکه (SCC) Single-chip Cloud Computer واقعی در اواخر سال 2009 معرفی شد، اهداف اینتل در مورد پروژه مربوطه نیز تغییر کرد. اهداف اینتل در رابطه با پروژه تحقیقاتی SCC در سال 2009 عبارتند از: - عرضه یک شبکه Mesh با بهبود چشمگیر عملکرد برای هر وات
- ارائه مقیاس دهی مناسب در هر دو حوزه فرکانس و ولتاژ دینامیک
- عملکرد عبوردهی پیام و اشتراک گذاری کنترل شده حافظه
- پیاده سازی قابلیت برنامه ریزی کامل جهت تأمین امکان تحقیقات مربوط به نرم افزارهای کاربردی
- کسب تجربه بر روی مدار، نرم افزار و پردازش موازی

فناوریهای SCC
 

Kohel می گوید معماری SCC به یک ابزار کامپیوترها شباهت دارد که در داخل سیلیکون، مجتمع و یکپارچه سازی شده اند. تراشه چندین هسته ای، حاوی فناوریهای متعددی است که می توانند آینده طراحی پردازنده ها را تغییر دهند. این فناوریها عبارتند از:
- شبکه On-chip: هر هسته در داخل SCC هسته ای قادر است یک پشته نرم افزاری جداگانه را اجرا نموده و اساساً یک گره Computing مجزا را تقلید کند. هسته ها می توانند بر روی شبکه ها On-chip با یکدیگر ارتباط برقرار نمایند. امکان جابجائی داده ها مابین هسته های همکار کننده تنها در مدت چند میلی ثانیه وجود دارد که تأخیر را در مقایسه با یک قفسه از سرورها بطور چشمگیری کاهش می دهد.
- مدیریت توان مصرفی: Kohel می گوید مدیریت توان مصرفی یکی از نقاط تمرکز اصلی محققین SCC بوده است. به برنامه نویسان امکان داده شده است تا توان مصرفی بر روی تراشه SCC را از طریق نرم افزار خودشان کنترل کنند. نرم افزار می تواند توان مصرفی را بر حسب نیازهای نرم افزار به یکی از 8 ناحیه ( Island) تعریف شده بر روی تراشه کاهش داده و یا آن را بطور کامل خاموش نمایند. اینتل می گوید تراشه SCC برحسب مدیریت نرم افزاری سطوح مذکور می تواند با توانی معادل 25 تا 125 وات کار کند.
- پشتیبانی از عبوردهی پیام Scale-out: تراشه SCC از یک مدل برنامه ریزی « Scale-out Message Passing» پشتیبانی می کند که به آنچه از قبل در Data-Centerهای Cloud مورد استفاده قرار گرفته است شباهت زیادی دارد. Scale-out به استفاده از گره های مستقل( هریک با حافظه مخصوص به خودش) برای پردازش یک نرم افزار کاربردی، اشاره دارد.
- پشتیبانی از حافظه اشتراکی منسجم( Coherent) مبتنی بر نرم افزار: SCC از پشتیبانی انسجام کاشه سخت افزاری استفاده نمی کند، بلکه از استفاده از انسجام مبتنی بر نرم افزار بهره می گیرد. این تکنیک به صرفه جوئی در مصرف برق منتهی می گردد.
با این فناوریها، معماری چندین هسته ای SCC انعطاف پذیر و مقیاس پذیر می گردد( این معماری به آسانی توانسته است تا ورای 48 هسته گسترش پیدا کند). Kohel در این زمینه می گوید:« خود معماری توانسته است از 64، 100 و یا حتی تعداد بیشتری از هسته ها پشتیبانی نماید.»

اتصال کاشه تحت مدیریت نرم افزاری
 

یکی از حوزه هائی که SCC در آن دستخوش یکی تغییر قابل ملاحظه شده است، روش اشتراک گذاری داده ها مابین نواحی حافظه کاشه است. Kohel در این زمینه می گوید:« ما یک ویژگی با نام انسجام سخت افزاری کاشه را حذف کرده ایم. در انسجام سخت افزار کاشه، تمام کاشه با داده ها بروزرسانی می شوند و ما باید اطمینان پیدا کنیم که داده ها برای تمام هسته ها قابل دسترسی هستند، اما این روش با هزینه بالائی در زمینه مصرف برق همراه خواهد بود. بنابراین ما مرحله مذکور را حذف کرده ایم که باعث صرفه جوئی در توان مصرفی می گردد».
بعبارت دیگر با انسجام سخت افزاری کاشه، هر بار که داده ها در یک هسته تغییر می کنند، تمام کاشه ها باید برای انعکاس داده های بروز رسانی شده، تغییر نمایند. این تغییرات مستلزم مصرف توان بسیار بالائی خواهد بود، در حالیکه بر حسب نوع کاری که هریک از هسته ها مشغول انجام آن می باشد، ممکن است هیچ لزومی برای اعمال این تغییرات وجود نداشته باشد. Kohel می گوید:« ممکن است تمام هسته ها در حال انجام کارهای متفاوتی بوده و نیازی به بروز رسانی کاشه نداشته باشند.»
در مقابل، اینتل یک انسجام کاشه مدیریت شده توسط نرم افزار را در SCC پیاده سازی کرده است. استفاده از یک انسجام کاشه مدیریت شده توسط نرم افزار در عین حال از مقیاس پذیری بالاتری برخوردار می باشد که آن را کاملاً برای تراشه های چندین هسته ای مناسب می سازد. Kohel می گوید:« ما باید این مدیریت کاشه را در نرم افزار انجام دهیم، زیرا کارآمدتر از روش سخت افزاری خواهد بود. ما داده ها را بعنوان یک بسته مابین هسته ها جادر مقابل، اینتل یک انسجام کاشه مدیریت شده توسط نرم افزار را در SCC پیاده سازی کرده است. استفاده از یک انسجام کاشه مدیریت شده توسط نرم افزار در عین حال از مقیاس پذیری بالاتری برخوردار می باشد که آن را کاملاً برای تراشه های چندین هسته ای مناسب می سازد. Kohel می گوید:« ما باید این مدیریت کاشه را در نرم افزار انجام دهیم، زیرا کارآمدتر از روش سخت افزاری خواهد بود. ما داده ها را بعنوان یک بسته مابین هسته ها جابجا می کنیم».

حرکت از Multicore به Many-Coreنوع کاربردهای امکانپذیر برای مصرف کنندگان عام همراه بوده است . انتظار اصلی از تراشه های تک هسته ای، اجرای نرم افزارهای کاربردی مبتنی بر متن و یا چند رسانه ای بود، آن هم با استفاده از مجموعه داده هائی در حد چند مگابایت و سطح اجرائی MIPS( میلیون دستورالعمل در ثانیه). با اینحال هنگامیکه استفاده از معماریهای چند هسته ای آغاز شد، وظایف سنگین تری نظیر Computing موبایل سطح بالا، مضمون ویدیوئی HD و سایر موارد مشابه رواج بیشتری پیدا کردند. پردازنده های چند هسته ای می توانند از مجموعه داده هائی در اندازه های گیگابایتی استفاده کرده و به سطح اجرائی GIPS( میلیارد دستورالعمل در ثانیه) برسند.
 

Kohel می گوید:« انتقال از پردازنده های تک هسته ای به تراشه های چند هسته ای، مثالی از یک تلاش بزرگتر برای مقیاس دهی عملکرد در طول زمان به حساب می آید. تا پیش از اوایل دهه 2000 میلادی و رواج پردازنده های چند هسته ای، شما واقعاً پردازش ویدیوئی خوبی را در اختیار نداشتید».
ورود تراشه های چندین هسته ای که مجموعه داده هائی در اندازه های ترابایتی را اداره کرده و به سطح اجرائی TIPS( تریلیون دستورالعمل در ثانیه) می رسند، قدم بعدی خواهد بود. Kohel معتقد است که پردازنده های چندین هسته ای می توانند قدرت پردازش مورد نیاز برKohel می گوید:« انتقال از پردازنده های تک هسته ای به تراشه های چند هسته ای، مثالی از یک تلاش بزرگتر برای مقیاس دهی عملکرد در طول زمان به حساب می آید. تا پیش از اوایل دهه 2000 میلادی و رواج پردازنده های چند هسته ای، شما واقعاً پردازش ویدیوئی خوبی را در اختیار نداشتید».

ورود تراشه های چندین هسته ای که مجموعه داده هائی در اندازه های ترابایتی را اداره کرده و به سطح اجرائی TIPS( تریلیون دستورالعمل در ثانیه) می رسند، قدم بعدی خواهد بود. Kohel معتقد است که پردازنده های چندین هسته ای می توانند قدرت پردازش مورد نیاز برای تنوعی از نرم افزارهای کاربردی جدید نظیر دنیاهای مجازی 3 بعدی و کنفرانسهای ویدیوئی« غرق کننده» ( Immersed) را فراهم نمایند. برقراری ارتباط با کامپیوتر، وضعیت طبیعی تری پیدا خواهد کرد زیرا نرم افزارهای کاربردی ویدیوی 3 بعدی می توانند ژستهای طبیعی را بخوانند. به گفته Kohel، حرکت به سمت تراشه های چندین هسته ای« باعث طبیعی تر شدن تجربه تعامل با کامپیوتر خواهد شد».ر بانک حاوی 4 title)، یک گروه از 4 کنترلر حافظه و یک شبکه I/O اشاره دارد که هریک از آنها می توانند با ولتاژ مستقلی کار کنند. مثالهائی از نواحی ولتاژی با یک V در نمودار شکل [5] نشان داده شده اند.
Kohel می گوید:« کنترل دینامیک با این تعداد بالا از هسته ها اهمیت بسیار زیادی پیدا می کند. ما نمی خواهیم فرض کنیم که همه آنها در حال انجام کار مشابهی هستند». با SCC، توسعه دهندگان نرم افزاری و برنامه نویسان خواهند توانست مقادیر فرکانس و ولتاژ را بر حسب نیازهای نرم افزار کنترل نمایند.
David Anderson استادیار علوم کامپیوتر در دانشگاه Carengie Mellon که احتمالاً یکی از همکاران اینتل در زمینه تحقیقات SCC خواهد بود، می گوید:« Cloud Computer تک تراشه ای یک سکوی موجود و حاضر برای تحقیقات Data Center به حساب می آید، زیرا ترکیب کنترل Fine-Grain ولتاژ و فرکانس با توانائی خاموش کردن کامل مناطقی از پردازنده به معنای آن است که ما می توانیم توازن مابیKohel می گوید:« کنترل دینامیک با این تعداد بالا از هسته ها اهمیت بسیار زیادی پیدا می کند. ما نمی خواهیم فرض کنیم که همه آنها در حال انجام کار مشابهی هستند». با SCC، توسعه دهندگان نرم افزاری و برنامه نویسان خواهند توانست مقادیر فرکانس و ولتاژ را بر حسب نیازهای نرم افزار کنترل نمایند.

David Anderson استادیار علوم کامپیوتر در دانشگاه Carengie Mellon که احتمالاً یکی از همکاران اینتل در زمینه تحقیقات SCC خواهد بود، می گوید:« Cloud Computer تک تراشه ای یک سکوی موجود و حاضر برای تحقیقات Data Center به حساب می آید، زیرا ترکیب کنترل Fine-Grain ولتاژ و فرکانس با توانائی خاموش کردن کامل مناطقی از پردازنده به معنای آن است که ما می توانیم توازن مابین پردازش، حافظه و I/O را به دقت بررسی نمائیم». ای SCC، اینتل باز هم Tile را تکرار کرده و از تمام فضای قابل دسترسی استفاده می نماید. همانطور که در شکل [6] مشاهده می کنید، یک تراشه SCC تقریباً ابعادی معادل یک تمبر پستی دارد(A). هنگامیکه به یک سطح کلی تراشه نگاه کنید، یک کنترلر حافظه و 6 tile را خواهید دید(B). هر tile شامل یک روتر، دو ناحیه کاشه L2، یک بافر پیام و دو هسته خواهد بود(C).
اینتل قبلاً ایده Tileها را با تراشه« اثبات مفهوم»( Proof-of-Concept) خود با نام Polaris که شامل 80 هسته بود و در سال 2007 معرفی شد، تشریح کرده بود. Kohel در این زمینه می گوید:« این یک شیوه پیشرفته تر از پیاده سازی tile در مقایسه با Polaris است، شیوه ای که احتمالاً می توان از آن در یک محصول واقعی استفاده کرد . این یک تراشه تجربی است و از مفاهیم پیش نمونه ای استفاده می نماید که ما فکر می کنیم می خواهیم آنها را در طول زمان ترکی ب نمائیم».
به گفته Kohel، محققین اینتل به خاطر همین معماری Tiled تصمیم گرفته اند که عبارت «Cloud Computer» را در نام تراشه SCC درج نمایند. او می گوید:« اگر به تراشه نگاه کنید، تا حدودی به چیزی شباهت دارد که در Cloudها می بینید، حداقل از دیدگاه یک برنامه نویس. این نام براساس مدل تجاری Cloud Computer انتخاب نشده است. با اینحال، آنها از جنبه سخت افزاری دارای معماری مشابهی هستند».
با وجود آنکه اینتل هیچ برنامه ای برای تجاری سازی این نسخه بخصوص از SCC ندارد، بعضی از مفاهیم و ویژگیهای آن نهایتاً می توانند به ریزپردازنده های واقعی راه پیدا کنند. Tim Mattson مهندس ارشد Intel Labs می گوید:« این تراشه از دیدگاه یک برنامه نویس بسیار جذاب خواهد بود زیرا از یک معماری حافظه کاملاً غنی برخوردار است. با این تراشه، ما به اکتشاف و بررسی معماریهای حافظه متفاوتی نسبت به خط چند هسته ای استاندارد خود و همچنین نحوه تأثیرگذاری آنها بر مدلهای برنامه نویسی خواهیم پرداخت».

اعداد و ارقام مربوط به SCC
 

48 هسته بر روی تراشه SCC، بیانگر بالاترین تعداد هسته های سازگار با IA(Intel Architecture) است که تاکنون بر روی یک تراشه واحد ترکیب شده اند. اینتل پردازنده مجهز به هسته های بیشتر را تحت عنوان Polaris در سال 2007 به نمایش گذاشت که حاوی 80 هسته بود. با اینحال، هسته های پیاده سازی شده بر روی Polaris با معماری IA انطباق نداشتند. اینتل با Polaris بعنوان یک تراشه اثبات مفهومی رفتار کرد که اختصاصاً برای تحقیقات سطح بالا طراحی نشده بود( وظیفه ای که تراشه SCC بر عهده دارد).
به گفته Kohel، اینتل حتی با یک تراشه 80 هسته ای در کارنامه گذشته خود، احساس نمی کرد که نیاز دارد با SCC از این تعداد عبور کند. در واقع این شرکت هیچ تعداد خاصی از هسته های منطبق با معماری IA را برای تراشه SCC بعنوان یک هدف در نظر نگرفته بود. Kohel در این زمینه می گوید:« در رابطه با تعداد هسته ها، ما صرفاً می خواستیم تعداد بسیار زیادی از آنها داشته باشیم و به همین دلیل فقط ناحیه قابل دسترسی خود را با حداکثر تعداد هسته های ممکن پر کردیم».
بعضی از جنبه های خاص تراشه SCC عبارتند از:
- 48 هسته منطبق با معماری IA
- تولید شده با فناوری 45 نانومتری مبتنی بر Hi-K metal-gate sillicon
- 48 ناحیه کاشه L2
-24 Tile با دو هسته IA در هر Tile
- یک شبکه Mesh دو بعدی 4×6 ( 24 روتر) با پهنای باند 256 گیگابایت بر ثانیه در بین بخشهای مختلف ( Bisection)
- 4 کنترلر حافظه DDR3( با قابلیت آدرس دهی 64 گیگابایت)
-384 کیلوبایت حافظه اشتراکی On-die برای عبور دهی پیامها در بین هسته ها
- مدیریت توان مصرف با مقیاسهائی از 25 وات تا 125 وات
- Die با مساحت 567 میلیمتر مربع
- 1/3 میلیارد ترانزیستور
- نزدیک به 25 میلیون ترانزیستور برای هر هسته( در صورتیکه ترانزیستورهای اختصاص یافته به سخت افزار شبکه سازی را در نظر نگیریم)
- قابلیت اجرای نسخه سفارشی سازی شده ای از لینوکس

به کار انداختن هسته ها
 

از زمان معرفی SCC در اواخر سال 2009 به بعد، اینتل همیشه با یک پرسش متداول مواجه بوده است: اگر تراشه های آینده دارای 100 هسته( و یا بیشتر) خواهند بود، این هسته ها چطور مورد استفاده قرار خواهند گرفت؟ Kohel پیشنهاد می کند که برای بدست آوردن ایده هائی در این زمینه، به Supercomputing و Data-Centerها توجه نمائیم.
سوپر کامپیوترهای امروزی اساساً از تعداد زیادی از ریز پردازنده ها استفاده می کنند که از طریق یک شبکه دارای عملکرد بالا با یکدیگر ارتباط برقرار می نمایند. Data-Centerها نیز از یک مدل Cloud-Computing مشابه استفاده نموده و تعداد زیادی از پردازنده ها را بر روی مجموعه های بزرگی از داده ها به کار می گیرند. SCC برای بهره گیری از همین تکنیکهای برنامه ریزی موازی ساخته شده است که از قبل در حوزه های مذکور مورد استفاده قرار گرفته اند.
Kohel درباره تراشه SCC می گوید:« این محصول همانند یک شبکه بر روی یک تراشه واحد طراحی گردیده است. شما می توانید از همان مدلهای برنامه نویسی برای این تراشه استفاده نمائید که در سوپرکامپیوترها و Data-Centerها به اثبات رسیده اند».

تحقیقات
 

با حرکت پروژه SCC به سمت جلو، اینتل بر روی حوزه های خاصی از تحقیقات تمرکز خواهد نمود. پیش از هر چیز، اینتل به جستجوی حوزه هائی خواهد پرداخت که در آنها می تواند مفاهیم برنامه نویسی موازی را بر روی پردازنده های عمومی برای دسک تاپها و لپ تاپها اعمال نماید. ثانیاً، اینتل بطور جدی بر روی بهبود معماری SCC براساس نیازهای برنامه نویسانی که از این تراشه برای انجام تحقیقات عملی خود بر روی مدلهای جدید برنامه نویسی و نرم افزارهای کاربردی استفاده می کنند، کار خواهد کرد.
به گفته Kohel، اینتل در نظر دارد تا تقریباً 100 تراشه تجربی SCC را تولید کرده و آنها را در اختیار همکاران تجاری خود قرار دهد. او در این رابطه می گوید:« این تراشه برای محققین برنامه نویسی و محققین تراشه ها بسیار مفید خواهد بود. به این ترتیب آنها دیگر مجبور نخواهند بود که از شبیه سازها استفاده کنند».
بدون SCC، آزمایش نرم افزارهای کاربردی طراحی شده برای یک سوپرکامپیوتر معمولاً به شبیه سازی بر روی یک سیستم کوچکتر که از قدرت کمتری برخوردار است، نیاز خواهد داشت که یک فرآیند وقتگیر و ناامیدکننده است.
David Anderson می گوید:« موازی سازی عظیم تراشه SCC، این توانائی را در اختیار ما قرار می دهد تا امروز به بررسی سطحی از موازی سازی بپردازیم که از نرم افزارهای کاربردی 5 سال بعد انتظار می رود و به این ترتیب بهترین استفاده را از سکوهای چندین هسته ای نوظهور داشته باشیم».
Kohel از اعلام یک خط زمانی در مورد دستیابی تحقیقات SCC به محصولات واقعی چندین هسته ای که در دسک تاپها و لپ تاپها ظاهر خواهند شد، خودداری کرد. او می گوید:« ما تراشه ای مانند این را بعنوان چیزی که به تولید انبوه آن خواهیم پرداخت در نظر نمی گیریم».
با اینحال، تحقیقات یک مسیر کاملاً آشکار را دنبال می کند و تراشه های چندین هسته ای که به یک معماری از نوع Tile مجهز هستند مطمئناً آینده پردازنده ها را تشکیل خواهند داد. اما نباید انتظار داشته باشیم که سال آینده با یک جهش ناگهانی از پردازنده های 8 هسته ای به پردازنده های 48 هسته ای مواجه شویم. هنگامیکه نوبت به افزایش تعداد هسته ها و سوئیچ از ساختار چند هسته ای به ساختار چندین هسته ای می رسد، پیشرفت پایدار همچنان بعنوان یک قاعده اصلی در نظر گرفته می شود.
منبع: بزرگراه رایانه، شماره 129